#pragma once
#include "Entity.h"


class Player : public Entity {
/* Contents of Entity that are inherited
protected:
	Texture m_pTexture;
	float m_scale;
	float m_rotation;
	float m_speed;
	int m_durability;
	bool m_bMoving;
	bool m_bDead;
public:
	PhysicObject m_PhysicObject;

	void initialize(LPCWSTR fileName);
	void setData(V2DF position, V2DF velocity, float scale, float rotation, float speed, int durability);
	void update();
	void render();
	void release();
*/
private:
	Input* m_pInput;
	int m_shootingMode;
	int m_lives;
	
	bool shoot; //if player shot or not
	float currShot,prevShot,betShot; //shot cooldown variables
	int shootSpeed; //shooting speed

public:
	Player();
	~Player();
	
	// Since the Physic System handles 
	// the movement of our Entity.
	// I put Input code inside this update.
	// Might want to make a separate function
	// called Input instead of update. 
	// Update might have other uses depending on
	// what is intended. 
	void update();
	void render();
	void release();

	void setLives(int value);
	int getLives();
	
	int getShootMode() { return m_shootingMode; };
	bool getShoot() { return shoot; };
	void setShootToFalse() { shoot = false; };
	int getShootSpeed() { return shootSpeed; };
	void setShootSpeed(int s) { shootSpeed = s;};
};